#include <stdio.h>

//C++语言支持函数重载
//实现原理：名字改编(name mangling)
//具体操作步骤：当函数名相同时，会根据参数列表中
//参数的类型、顺序、个数不同进行改编

/* float add(int x, int y) */
/* { */
/*     return x + y; */
/* } */

int add(int x, int y)
{
    return x + y;
}

int add(float x, int y)
{
    return x + y;
}

int add(int x, float y)
{
    return x + y;
}

int add(int x, int y, int z)
{
    return x + y + z;
}

int main()
{
    int a = 1, b = 2, c = 3;
    printf("add(a, b): %d\n", add(a, b));
    printf("add(a, b, c): %d\n", add(a, b, c));

    return 0;
}

